package com.rnkrsoft.suyan.config.protocol.v2;

import java.io.Serializable;

/**
 * 数据啊转换，提供对象转换为字节数组数据和字节数组数据转换为对象
 */
public interface DataConverter {
    /**
     * 将对象序列化为字节数组
     * @param val Java对象
     * @return 字节数组
     */
    byte[] serialize(Serializable val);

    /**
     * 将字节数组反序列化为对象
     * @param bytes 字节数组
     * @param javaType JAVA类型
     * @param <T> 对象类型
     * @return 对象
     */
    <T extends Serializable> T deserialize(byte[] bytes, Class<T> javaType);
}
